/**
 * \file CTextW.h
 * \author Corentin Le Bail
 * \date 2009-2012
 * \brief Fichier de déclaration de la class CTextW
 */
//------------------------------------------------------------------------------
#ifndef __CTEXTW_H__
#define __CTEXTW_H__
//------------------------------------------------------------------------------
#include <QWidget>
#include "CMyTextEdit.h"
//------------------------------------------------------------------------------
/**
 * \class CTextW CTextW.h "CTextW.h"
 * \brief Classe de base d'édition de texte.
 */
class CTextW : public QWidget
{
	Q_OBJECT
	public:
		/**
		 * \fn CTextW(QWidget *parent=0)
		 * \brief Constructeur
		 * \param[in] parent Référence vers un objet parent
		 */
		CTextW(QWidget *parent=0) : QWidget(parent) {}
		/**
		 * \fn virtual void setValue(QString value)
		 * \brief Affecte le texte
		 * \param[in] value Le texte
		 */
		virtual void setValue(QString value) { _text->setValue(value); }
		/**
		 * \fn QString getValue(void)
		 * \return Le texte
		 */
		QString getValue(void) { return _text->getValue(); }
		/**
		 * \fn void setChamp(QString value)
		 * \brief Affecte le nom du champ de la base de données corespondant au texte
		 * \param[in] value Le nom du champ
		 */
		void setChamp(QString value) { _text->setChamp(value); }
		/**
		 * \fn QString getChamp(void)
		 * \return Le nom du champ de la base de données corespondant au texte
		 */
		QString getChamp(void) { return _text->getChamp(); }
		/**
		 * \fn void setTable(QString value)
		 * \brief Affecte le nom de la table de la base de données
		 * \param[in] value Le nom de la table
		 */
		void setTable(QString value) { _text->setTable(value); }
		/**
		 * \fn QString getTable(void)
		 * \return Le nom de la table de la base de données
		 */
		QString getTable(void) { return _text->getTable(); }
	protected:
		/**
		 * \fn void setTextEdit(CMyTextEdit *text)
		 * \brief Affecte l'object QTextEdit de référence
		 * \param[in] text Référence de l'objet CMyTextEdit
		 */
		 void setTextEdit(CMyTextEdit *text) { _text=text; }
		 /**
		  * \fn CMyTextEdit * getTextEdit(void)
		  * \return La référence de l'objet CMyTextEdit
		  */
		 CMyTextEdit * getTextEdit(void) { return _text; }
	private:
		CMyTextEdit *_text;

		//void resizeEvent(QResizeEvent * event);
	signals:
		/**
		 * \fn void textChanged(void)
		 * \brief Le texte à changé
		 */
		void textChanged(void);
		/**
		 * \fn void invokeHelp(CChamp *champ)
		 * \brief L'aide est invoké
		 * \param[in] champ Référence du champ sur lequel l'aide a été invoké
		 */
		void invokeHelp(CChamp *champ);
	protected slots:
		/**
		 * \fn virtual void on_text_textChanged(void) = 0
		 * \brief Le texte à changé
		 */
		virtual void on_text_textChanged(void) = 0;
		/**
		 * \fn void on_text_invokeHelp(CChamp *champ)
		 * \brief L'aide est invoké
		 * \param[in] champ Champ sur lequel l'aide est invoké
		 */
		void on_text_invokeHelp(CChamp *champ);
};
//------------------------------------------------------------------------------
#endif //__CTEXTW_H__
//------------------------------------------------------------------------------